package main

import (
	"github.com/pkg/errors"
	"github.com/sirupsen/logrus"
	"time"
)

// Тестовая служба
type serviceError struct {
	isStarted bool
	isAlive   bool
}

// Возвращает статус состояния запуска сервиса
func (s *serviceError) IsStarted() bool {
	return s.isStarted
}

// Возвращает статус сервиса: живой или нет
func (s *serviceError) IsAlive() bool {
	return s.isAlive
}

// Запуск сервиса
func (s *serviceError) Run() error {
	s.isStarted = true
	s.isAlive = true
	time.Sleep(time.Second * 1)

	s.isAlive = false
	return errors.New(`test`)
}

// Правильная остановка сервиса
func (s *serviceError) GracefulShutdown() {
	logrus.Info(`Stop error service`)

	time.Sleep(time.Millisecond * 500)
}
